
/**
 * 时间工具类
 */
export class TimeUtils {
    public static formatDate(time: string | number, fmt: string) {
        let _date = new Date(time)
        let o: any = {
            "M+": _date.getMonth() + 1,                 //月份
            "d+": _date.getDate(),                    //日
            "h+": _date.getHours(),                   //小时
            "m+": _date.getMinutes(),                 //分
            "s+": _date.getSeconds(),                 //秒
            "q+": Math.floor((_date.getMonth() + 3) / 3), //季度
            // "S"  : _date.getMilliseconds()             //毫秒
        };

        // 年
        if (/(y+)/.test(fmt)) {
            fmt = fmt.replace(RegExp.$1, (_date.getFullYear() + "").substr(4 - RegExp.$1.length));
        }
        // 毫秒
        if (/(S+)/.test(fmt)) {
            let ms = _date.getMilliseconds() + ""
            fmt = fmt.replace(RegExp.$1, ("000" + ms).substr(ms.length, RegExp.$1.length));
        }

        for (let k in o) {
            if (new RegExp("(" + k + ")").test(fmt)) {
                fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
            }
        }
        return fmt;
    }

    public static logDate() {
        var d = new Date();
        return `[${TimeUtils.formatDate(d.getTime(), "MM-dd hh:mm:ss SSS")}]`;
    }
}
